package com.demodis.dao;

import java.sql.ResultSet;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.demodis.domain.TblDetContent;
import com.demodis.domain.TblDeterPerson;

public interface DeterPersonDaoI extends BaseDaoI<TblDeterPerson>{
	
	int getTotal(TblDeterPerson deterPer);
	
	List<TblDeterPerson> getByGroupId(TblDeterPerson deterPer);
	
	/**
	 * 获取列表
	 * @return
	 */
	public List<TblDeterPerson> get(ResultSet rs);
	
	/**
	 * 获取用户的岗位ID,
	 * @param userId
	 * @return 如果岗位ID不存在则返回0
	 */
	public int getUserPosIdByUserId(int userId);

	/**
	 * 做测评操作
	 * @param deterGroup
	 * @return
	 */
	public boolean doDeter(TblDetContent t);
	
	/**
	 * 做测评操作
	 * @param deterGroup
	 * @return
	 */
	public boolean doDeter(JSONObject jsonObj);
	
	/**
	 * 判断该测评者是否存在
	 * @param userId
	 * @return
	 */
	public boolean perExist(int userId);

	/**
	 * 获取职能部门员工成绩
	 * @return
	 */
	public List<Map<String, Object>> getGroupEmpApp();

	/**
	 * 录入职能部门员工评价成绩
	 * @param map
	 * @return
	 */
	public boolean addAppScore(Map<String, Integer> map);
	/**
	 * 修改职能部门员工评价成绩
	 * @param map
	 * @return
	 */
	public boolean modifyAppScore(Map<String, Integer> map);

	/**
	 * 获取院长和书记能测评的用户名单
	 * @param deterPer 被测评用户岗位ID
	 * @param userId 测评用户ID
	 * @return
	 */
	List<TblDeterPerson> presidentAndSecretariatCanDeterUser(TblDeterPerson deterPer, int userId);

	/**
	 * 获取院领导能测评的用户名单
	 * @param deterPer 被测评用户岗位ID
	 * @param userId 测评用户ID
	 * @return
	 */
	List<TblDeterPerson> schoolLeaderCanDeterUser(TblDeterPerson deterPer, int userId);

	/**
	 * 获取中干能测评的用户名单
	 * @param deterPer 被测评用户岗位ID
	 * @param userId 测评用户ID
	 * @return
	 */
	List<TblDeterPerson> twoLeveLeaderCanDeterUser(TblDeterPerson deterPer, int userId);

	/**
	 * 获取普通员工能测评的用户名单
	 * @param deterPer 被测评用户岗位ID
	 * @param userId 测评用户ID
	 * @return
	 */
	List<TblDeterPerson> ortherCanDeterUser(TblDeterPerson deterPer, int userId);
	
	List<TblDeterPerson> allDeterUser(TblDeterPerson deterPer, int userId);
	
}
